import Vue from 'vue';
import App from './App.vue';
import router from './router'; //引入 vue-router
import store from './store'; //引入 vuex

// 全局配置
import '@/assets/scss/reset.scss'; //全局样式
import 'element-ui/lib/theme-chalk/index.css'; //element-ui样式
// import http from '@/apis/config'; //axios
import './mock'; // mockjs

// 第三方包
import ElementUI from 'element-ui';
import echarts from '@/utils/echartsUi';

Vue.use(ElementUI);
Vue.prototype.$echarts = echarts;
// Vue.prototype.$http = http;
Vue.config.productionTip = false; // 阻止显示生产模式的消息，生产环境（true）下减少性能开销

// 路由守卫
router.beforeEach((to, from, next) => {
  // 防止刷新后vuex里丢失token
  store.commit('getToken');
  // 防止刷新后vuex里丢失标签列表tagList
  store.commit('getTagList');
  let token = store.state.user.token;
  if (!token) {
    if (to.name === 'login') {
      // 过滤登录页，因为去登陆页不需要token(防止死循环)
      next();
    } else {
      next({
        name: 'login',
        query: {
          // 把跳转登录的页面参数传递到login页
          redirect: to.fullPath
        }
      });
    }
  } else if (to.name === 'login') {
    // 重新访问登录页跳转到首页
    next('/');
  } else {
    next();
  }
});

new Vue({
  router,
  store,
  render: h => h(App),
  created() {
    store.commit('addMenuRouter', router);
  }
}).$mount('#app');
